package com.university.evaluation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.university.evaluation.common.ResponseResult;
import com.university.evaluation.domain.dto.EvaluationDTO;
import com.university.evaluation.entity.EvaluationSystem;

import java.util.Map;

/**
 * 测评服务接口
 * 提供测评相关的业务功能
 */
public interface EvaluationService extends IService<EvaluationSystem> {

    /**
     * 测试认证
     * @return 认证结果
     */
    ResponseResult<Void> testAuth();

    /**
     * 创建测评
     * @param evaluationDTO 测评信息DTO
     * @return 创建结果
     */
    ResponseResult<Map<String, Object>> createEvaluation(EvaluationDTO evaluationDTO);

    /**
     * 获取测评列表
     * @return 测评列表
     */
    ResponseResult<Map<String, Object>> getEvaluationList();

    /**
     * 根据ID获取测评详情
     * @param evaluationId 测评ID
     * @return 测评详情
     */
    ResponseResult<Map<String, Object>> getEvaluationById(Long evaluationId);

    /**
     * 更新测评信息
     * @param evaluationId 测评ID
     * @param evaluationDTO 测评信息DTO
     * @return 更新结果
     */
    ResponseResult<Void> updateEvaluation(Long evaluationId, EvaluationDTO evaluationDTO);

    /**
     * 删除测评
     * @param evaluationId 测评ID
     * @return 删除结果
     */
    ResponseResult<Void> deleteEvaluation(Long evaluationId);

    /**
     * 获取测评分页列表
     * @param params 分页参数
     * @return 分页列表
     */
    ResponseResult<Map<String, Object>> getEvaluationPageList(Map<String, Object> params);

    /**
     * 获取用户参与的测评列表
     * @return 用户测评列表
     */
    ResponseResult<Map<String, Object>> getUserEvaluations();
}